using System.Data;
using Crosland.Offline.Core;
using Crosland.Framework.Base;

namespace Crosland.Offline.Data.Helper
{

    public class UsuarioHelper : DaoHelperBase
    {
        public UsuarioHelper()
            : base(Entidad, ConstansBase.Aplicacion)
        {
        }

        public Usuario Create(IDataReader dr)
        {
            Usuario entity = new Usuario();

            int iIdUsuario = dr.GetOrdinal(this.IdUsuario);
            if (!dr.IsDBNull(iIdUsuario)) entity.ID = dr.GetString(iIdUsuario);

            int iDesNombre = dr.GetOrdinal(this.DesNombre);
            if (!dr.IsDBNull(iDesNombre)) entity.DesNombre = dr.GetString(iDesNombre);

            int iDesApellido = dr.GetOrdinal(this.DesApellido);
            if (!dr.IsDBNull(iDesApellido)) entity.DesApellido = dr.GetString(iDesApellido);

            int iDesPassword = dr.GetOrdinal(this.DesPassword);
            if (!dr.IsDBNull(iDesPassword)) entity.DesPassword = dr.GetString(iDesPassword);

            int iDesEmail = dr.GetOrdinal(this.DesEmail);
            if (!dr.IsDBNull(iDesEmail)) entity.DesEmail = dr.GetString(iDesEmail);

            int iIndEstado = dr.GetOrdinal(this.IndEstado);
            if (!dr.IsDBNull(iIndEstado)) entity.IndEstado = dr.GetString(iIndEstado);

            int iVkorg = dr.GetOrdinal(this.Vkorg);
            if (!dr.IsDBNull(iVkorg)) entity.Vkorg = dr.GetString(iVkorg);

            int iSpart = dr.GetOrdinal(this.Spart);
            if (!dr.IsDBNull(iSpart)) entity.Spart = dr.GetString(iSpart);

            int iVkgrp = dr.GetOrdinal(this.Vkgrp);
            if (!dr.IsDBNull(iVkgrp)) entity.Vkgrp = dr.GetString(iVkgrp);

            int iVkbur = dr.GetOrdinal(this.Vkbur);
            if (!dr.IsDBNull(iVkbur)) entity.Vkbur = dr.GetString(iVkbur);

            int iWerks = dr.GetOrdinal(this.Werks);
            if (!dr.IsDBNull(iWerks)) entity.Werks = dr.GetString(iWerks);

            int iLgort = dr.GetOrdinal(this.Lgort);
            if (!dr.IsDBNull(iLgort)) entity.Lgort = dr.GetString(iLgort);

            int iUsrCreacion = dr.GetOrdinal(this.UsrCreacion);
            if (!dr.IsDBNull(iUsrCreacion)) entity.UsrCreacion = dr.GetString(iUsrCreacion);

            int iFecCreacion = dr.GetOrdinal(this.FecCreacion);
            if (!dr.IsDBNull(iFecCreacion)) entity.FecCreacion = dr.GetDateTime(iFecCreacion);

            return entity;
        }


        #region Mapeo de Campos

        public const string Entidad = "Usuario";
        public string IdUsuario = "ID_USUARIO";
        public string DesNombre = "DES_NOMBRE";
        public string DesApellido = "DES_APELLIDO";
        public string DesPassword = "DES_PASSWORD";
        public string DesEmail = "DES_EMAIL";
        public string IndEstado = "IND_ESTADO";
        public string UsrCreacion = "USR_CREACION";
        public string FecCreacion = "FEC_CREACION";
        public string Vkorg = "VKORG";
        public string Spart = "SPART";
        public string Vkgrp = "VKGRP";
        public string Vkbur = "VKBUR";
        public string Werks = "WERKS";
        public string Lgort = "LGORT";

        public string SpEncriptarPassword
        {
            get { return "USP_ENCRIPTAR_PASSWORD"; }
        }

        public string SpDesEncriptarPassword
        {
            get { return "USP_DESENCRIPTAR_PASSWORD"; }
        }

        public string SpValidarEmail
        {
            get { return "USP_VALIDAR_EMAIL"; }
        }

        #endregion
    }
}
